"""
set的常规操作：
    1.支持in，和not in
    2.数学操作：
        并集(union)：
            set1 | set2,获取set1和set2所有的元素，去重

        交集(intersection)、
            set1 & set2,获取set1和set2共有的部分

        差集(difference)、
            set1 - set 2,获取set1有，set2没有的

        对称差集(symmetric difference)。

    3.增删改查
        add(元素),添加元素
        update([]),添加元素，批量添加
        remove(元素),删除
"""

# 无序的 , 去重的

set1 = {'zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'zhangsan', 'lisi'}
print(set1)
print(len(set1))

print(type(set1))  # <class 'set'>
#
# list1 = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu','zhangsan', 'lisi']
# print(len(list1))
#
# print(list1)

print('lisi 5' in set1)

set1.add('哈哈')
print(set1)

set1.remove('lisi')
print(set1)

# set1.remove('guagua') #KeyError: 'guagua'

# print(set1[0]) # TypeError: 'set' object does not support indexing


# 2.
# 数学操作：
# 并集(union)：
# set1 | set2, 获取set1和set2所有的元素，去重
#
# 交集(intersection)、
# set1 & set2, 获取set1和set2共有的部分
#
# 差集(difference)、
# set1 - set
# 2, 获取set1有，set2没有的
#
# 对称差集(symmetric
# difference)。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# set1.update([1, 2, 3, 9, 8])  # 用后面的 一组数据来更新 set1
# print(set1)

print(set1 & set2)  # 4,5  并且  交集
print(set1 | set2)  # 或 {1, 2, 3, 4, 5, 6, 7, 8}
print(set1 - set2)  # 差 {1, 2, 3}
print(set2 - set1)  # {8, 6, 7}

